﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLTV_V2.DataAccess;
using QLTV_V2.BussinessLogic;
using QLTV_V2.BussinessObject;

namespace QLTV_V2
{
    public partial class FrmMuonSach : DevComponents.DotNetBar.Office2007RibbonForm
    {
        public FrmMuonSach()
        {
            InitializeComponent();
        }
        Utilities uti = new Utilities();
        MuonTraBUS mtBUS = new MuonTraBUS();
        PhieuMuonTra phieuMT = new PhieuMuonTra();
        CTMuonTra ctMT = new CTMuonTra();
        BanDocBUS bdBUS = new BanDocBUS();
        BanDoc bd = new BanDoc();
        DauSach ds = new DauSach();
        public string manv;
        private void FrmMuonSach_Load(object sender, EventArgs e)
        {
            //Load combobox nhom ban doc
            comb_Nhombandoc.DataSource = uti.getDataSource("NhomBanDoc", "TenNhom");
            comb_Nhombandoc.ValueMember = "MaNhom";
            comb_Nhombandoc.DisplayMember = "TenNhom";
            //Load trang thai
            group_PhieuMT.Enabled = false;
            group_Sach.Enabled = false;
            txt_Hoten.Text = "";
            date_NgayHethan.Value = System.DateTime.Now;
            date_Ngaysinh.Value = System.DateTime.Now;
            comb_Nhombandoc.SelectedIndex = 0;

        }

        private void btn_InphieuMT_Click(object sender, EventArgs e)
        {
            int dem = 0;
            phieuMT=getTT_PhieuMT();
            if (mtBUS.insertPhieuMT(phieuMT) == true)
            {
                int count=dgv_Chon.Rows.Count-1;
                for (int i = 0; i < count; i++)
                {
                    ctMT = getTT_CTMuonTra(i);
                    if (mtBUS.insertCTMuonTra(ctMT) == true)
                    {
                        mtBUS.update_BanSach_MT(ctMT.MaBanSach,"tt", 1);//update trang thai sách
                        dem++;
                    }
                }
            }
            if (dem != 0)
            {
                MessageBox.Show("Đã lưu, chờ in phiếu....", "Thông báo");
                FrmReport_MT frm = new FrmReport_MT();
                frm.maphieuMT = phieuMT.MaMuonTra;
                frm.dk = 1;
                frm.ShowDialog();
                FrmMuonSach_Load(sender, e);
            }
        }

        private void btn_Kiemtra_Click(object sender, EventArgs e)
        {
            string mabandoc = txt_MaBandoc.Text;
            if (uti.CheckExitsValue("BanDoc", "MaBanDoc", mabandoc) == false)
            {
                if (mtBUS.checkTTThe(mabandoc) == true)
                {
                    if (mtBUS.checkDKMuonTra(mabandoc) == true)
                    {
                        //Load trang thai
                        group_PhieuMT.Enabled = true;
                        group_Sach.Enabled = true;
                        //Load thong tin ban doc
                        bd = bdBUS.GetBanDoc_Object(mabandoc);
                        txt_Hoten.Text = bd.TenBanDoc;
                        try
                        {
                            comb_Nhombandoc.SelectedValue = bd.MaNhom;
                        }
                        catch { }
                        date_Ngaysinh.Value = bd.NgaySinh;
                        date_NgayHethan.Value = bd.NgayHetHan;
                        //Load phieu muon tra
                        string lastID = uti.GetLastID("PhieuMuonTra", "MaMuonTra", "MaMuonTra", "MT-0000");
                        string nextID = uti.GetNextID(lastID, "MT-");
                        txt_MaMT.Text = nextID.ToUpper();
                        //Load so luong sach duon muon
                        txt_Soluong.Text = mtBUS.getSoluong(mabandoc).ToString();
                        //Load ngay thang
                        date_Ngaymuon.Value = System.DateTime.Now;
                        int songay = mtBUS.getSoNgayMuon(mabandoc);
                        date_Ngayphaitra.Value = date_Ngaymuon.Value.AddDays(songay);

                    }
                    else
                        MessageBox.Show("Chưa trả sách");
                }
                else
                    MessageBox.Show("Thẻ hiện đang bị khóa hoặc hết hạn sử dụng", "Thông báo");
            }

            else
            {
                MessageBox.Show("Mã bạn đọc không đúng", "Thông báo");
                FrmMuonSach_Load(sender, e);
            }
        }

        private void btn_Brown_Click(object sender, EventArgs e)
        {
            string mabansach=txt_MaSach.Text;
            if (uti.CheckExitsValue("BanSach", "MaBanSach", mabansach) == false)
            {
                ds = mtBUS.getTTDauSach_object_MT(mabansach);
                txt_Nhande.Text = ds.TenDauSach;
                txt_Tacgia.Text = ds.MaTacGia;
                txt_NamXB.Text = ds.NamXB.ToString();
                btn_Chon.Enabled = true;
                btn_Huychon.Enabled = true;
            }
            else
            {
                MessageBox.Show("Mã sách không đúng");
                btn_Chon.Enabled = false;
            }
        }
        private void btn_Chon_Click(object sender, EventArgs e)
        {
            if (uti.CheckExitsValue_3dk("BanSach", "MaBanSach", txt_MaSach.Text, "TrangThai", "Sẵn sàng", "TinhTrang", "Tốt") == true)
            {
                if (Check_Exits_DataGrid(txt_MaSach.Text) == true)
                {
                    int soluong = Convert.ToInt32(txt_Soluong.Text);
                    if (soluong == 0)
                        btn_Chon.Enabled = false;
                    if (soluong > 0)
                    {
                        soluong = Convert.ToInt32(txt_Soluong.Text) - 1;
                        txt_Soluong.Text = soluong.ToString();
                        btn_Chon.Enabled = true;
                        //Add vao datagrid v
                        int index = dgv_Chon.Rows.Add();
                        DataGridViewRow newRow = dgv_Chon.Rows[index];
                        newRow.Cells["MaBanSach"].Value = txt_MaSach.Text.ToUpper();
                        newRow.Cells["TenDauSach"].Value = txt_Nhande.Text;
                    }
                    else
                        MessageBox.Show("Số lượng sách mượn quá quy định", "Thông báo");
                }
                else
                    MessageBox.Show("Sách này đã được chọn!", "Thông báo");
            }
            else
                MessageBox.Show("Sách hiện đang cho mượn hoặ đã hết hạn sử dụng. Kiểm trả lại thông tin", "Thông báo");
           
            //Load status text bõ hiển thị thông tin sách
            txt_Nhande.Text = "";
            txt_Tacgia.Text = "";
            txt_NamXB.Text = "";
            
            //Button "In phiếu" hiện
            btn_InphieuMT.Enabled = true;
        }
        private void btn_Huychon_Click(object sender, EventArgs e)
         {
             if (!dgv_Chon.CurrentRow.IsNewRow)
             {
                 dgv_Chon.Rows.Remove(dgv_Chon.CurrentRow);
                 txt_Soluong.Text = (Convert.ToInt32(txt_Soluong.Text) + 1).ToString();
                 btn_Chon.Enabled = true;
             }
         }
        bool Check_Exits_DataGrid(string mabansach)
        {
            int n = dgv_Chon.Rows.Count;
            string[] luu = new string[n];
            for (int i = 0; i < n - 1; i++) //Luu vao mang
                luu[i] = dgv_Chon.Rows[i].Cells["MaBanSach"].Value.ToString();
            for (int i = 0; i < n; i++) //Lay ra kiem tra
                if (txt_MaSach.Text == luu[i])
                    return false;
            return true;
        }
        PhieuMuonTra getTT_PhieuMT()
        {
            phieuMT.MaMuonTra = txt_MaMT.Text.ToUpper();
            phieuMT.MaBanDoc = txt_MaBandoc.Text.ToUpper();
            phieuMT.NgayMuon = date_Ngaymuon.Value;
            phieuMT.NgayPhaiTra = date_Ngayphaitra.Value;
            phieuMT.MaNV = manv.ToUpper();
            return phieuMT;
        }
        CTMuonTra getTT_CTMuonTra(int dong)
        {
            string lastID = uti.GetLastID_DK("CTMuonTra", "MaMuonTra", txt_MaMT.Text, "MaCTMuonTra", "MaCTMuonTra", phieuMT.MaMuonTra + "-0000");
            string nextID = uti.GetNextID(lastID, phieuMT.MaMuonTra + "-");
            ctMT.MaCTMuonTra = nextID.ToUpper();
            ctMT.MaMuonTra = phieuMT.MaMuonTra.ToUpper();
            ctMT.MaBanSach = dgv_Chon.Rows[dong].Cells["MaBanSach"].Value.ToString().ToUpper();
            return ctMT;
        }

        private void Thoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btn_NhatKiMT_Click(object sender, EventArgs e)
        {
            if (txt_MaBandoc.Text != "")
            {
                if (uti.CheckExitsValue("PhieuMuonTra", "MaBanDoc", txt_MaBandoc.Text) == false)
                {
                    FrmXemCT_MT frm = new FrmXemCT_MT();
                    frm.dk = 2;
                    frm.mabd = txt_MaBandoc.Text;
                    frm.ShowDialog();
                }
                else
                    MessageBox.Show("Không có thông tin","Thông báo");
            }
            else
                MessageBox.Show("Chưa nhập mã thẻ","Thông báo");
        }

        private void dgv_Chon_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            uti.dgv_GetSTT_RowHeader(sender, e, dgv_Chon);
        }
    }

}
